1. Field
The following generally relates to computer graphics, and more particularly to accelerating rendering of 2-D representations of 3-D scenes using ray tracing.
2. Description of Related Art
Rendering photo-realistic 2-D images from 3-D scene descriptions with ray tracing is well-known in the computer graphics arts.
Ray tracing usually involves obtaining a scene description composed of geometric primitives, such as triangles, that describe surfaces of structures in the scene. The primitives can be associated with textures and other information that instructs a computer how light hitting that primitive should be affected by qualities of the primitive. In other words, a model of a physical environment is produced; the model may be designed to produce realistic results for conditions familiar to humans, or the model may be designed to achieve other results as desired. Ray tracing can produce photo-realistic images, including realistic shadow and lighting effects, because ray tracing can model the physical behavior of light interacting with elements of a scene. However, ray tracing is also known to be computationally intensive, and at present, even a state of the art graphics workstation requires a substantial amount of time to render a complicated scene using ray tracing, and real-time high quality and resolution rendering with ray tracing is still difficult to achieve.
Most practical scenes include sources of light (more generally, can be a model of any sort of energy source, for example, x-rays, infrared light, and the like). The light sources illuminate objects in the scene. Usually, a scene description reaches to a given extent, in that scenes are defined usually within some bounded area that can be identified by a scene boundary, which can also be known as a scene clip distance. Then, rays are emitted from a camera, or from other origins to test any number of conditions (e.g., is a particular point of an object in shadow of another object).
Such rays are traced in the scene until an intersection with a scene object, such as a primitive or a light source, is identified, or the ray has been traced to the scene boundary. Then, if there was an intersection with another primitive, further rays can be emitted for gather information about conditions at that intersection point. If a light source was intersected, then light energy from that light source can be determined to hit the origin of that ray. Various attributes of the light can be considered, such as its color and intensity.
All of the above describes a computer-based model of directed energy propagation through a scene having energy sources, and various objects that can have different qualities, such as different textures, colors, diffraction, and reflection properties, and the like. Thus, whether results obtained from such a model are as desired depends on precision and accuracy of the computation resources used to implement the model, including the hardware and how the hardware is being used by software. Methods and systems that allow either better results from a given amount of precision and accuracy or that allow a desired result with less computation are desirable, and some aspects of the following address such goals, and other improvements in ray-tracing systems.